' Z80_Source.bas
10 REM RESET display
20 GOSUB 1000
25 REM display numbers FROM 1 TO 100
30 FOR R = 1 TO 100
35 P = 0 : GOSUB 2000
38 IF P = 0 THEN GOTO 70
40 D$ = RIGHT$("0000" + STR$(R),4):GOSUB 1200
50 REM wait
60 GOSUB 1100
70 NEXT R
75 GOSUB 1100
80 GOSUB 1000
90 END
1000 REM RESET display
1010 FOR D = 56 TO 63
1020 OUT D,10
1030 NEXT D
1040 RETURN
1100 REM simulate a wait FOR about a second
1110 FOR T = 1 TO 1500
1120 NEXT T
1130 RETURN
1200 REM display
1210 FOR C = 2 TO LEN(D$)
1220 F = VAL(MID$(D$,C,1))
1230 IF C = 1 THEN GOTO 1250
1240 IF F = 0 AND VAL(MID$(D$,C-1,1)) = 0 THEN F = 10
1250 G = 60 - C
1260 OUT G,F
1270 NEXT C
1280 RETURN
2000 REM determine IF prime number
2010 IF R < 2 THEN RETURN
2020 FOR I = 2 TO R - 1
2030 IF R/I = INT(R/I) THEN P=0:RETURN
2040 NEXT I
2050 P = 1
2060 PRINT R;" is prime"
2070 RETURN